home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 6 / FM Towns Free Software Collection 6.iso / data / pvap317 / pvaploop.plp < prev    next >
Text File  |  1993-07-08  |  11KB  |  433 lines

  1. /************************************************************************
  2. *    PC-VANでの処理                        *
  3. ************************************************************************/
  4. /*    PC-VANでの処理メイン    */
  5. %DOvan{
  6.     var DATE[24];
  7.     var n    [3];
  8.     var D    [2];
  9.     var e    [2];
  10.     %pcvan1{
  11.     case    (@nth(a,1,{/}),
  12.         {SIG},    {SIG},
  13.         {BBS},    {BBS},
  14.         {CUG},    {CUG},
  15.         {OLT広場},    {OLT})
  16.     };
  17.  
  18.     %dovan{
  19.     case    (@nth(@nth(a,2,{/}),1,{>}),
  20.                 {毎日},pcvan1,
  21.                 {奇数},{case    (@getchar(DATE,10,1),
  22.                         {1},pcvan1,{3},pcvan1,
  23.                         {5},pcvan1,{7},pcvan1,
  24.                         {9},pcvan1)},
  25.                 {偶数},{case    (@getchar(DATE,10,1),
  26.                         {0},pcvan1,{2},pcvan1,
  27.                         {4},pcvan1,{6},pcvan1,
  28.                         {8},pcvan1)},,
  29.                 {case    (@getchar(@nth(a,2,{/}),1,2),
  30.                     @getchar(DATE,13,2),pcvan1,/* 曜日 */
  31.                     @getchar(DATE,9,2),pcvan1, /* 日付 */
  32.                     {複},    {D:=2;
  33.                         loop({
  34.                 case(@nth(@nth(@nth(a,2,{/}),1,{>}),D,{,}),
  35.                             @getchar(DATE,13,2),
  36.                             {pcvan1;im({No})},
  37.                             @getchar(DATE,9,2),
  38.                             {pcvan1;im({No})},
  39.                             {終わり},
  40.                             {im({No})},
  41.                             ,{D:=D+1;im({Yes})});
  42.                         })})});
  43.     };
  44.  
  45.     DATE:=@getdt;
  46.     n:=0;
  47.     loop({
  48.     n:=n+1;
  49.     %a @getline(PCVAN,n,1);
  50.     case    (a={},
  51.         {Yes},    {im({No})},,
  52.             {e:=1;
  53.             loop({
  54.             case(@nth(@nth(@nth(a,2,{/}),2,{>}),e,{,}),
  55.                 {終日},{dovan;im({No})},
  56.                 {昼間},{case(@getchar(@daylong,{16},{2}),
  57.                         {10},{dovan;im({No})},
  58.                         {11},{dovan;im({No})},
  59.                         {12},{dovan;im({No})},
  60.                         {13},{dovan;im({No})},
  61.                         {14},{dovan;im({No})},
  62.                         {15},{dovan;im({No})},
  63.                         {16},{dovan;im({No})},
  64.                         {17},{dovan;im({No})},,
  65.                             {e:=e+1;im({Yes})})},
  66.                 {夜1},{case(@getchar(@daylong,{16},{2}),
  67.                         {18},{dovan;im({No})},
  68.                         {19},{dovan;im({No})},
  69.                         {20},{dovan;im({No})},
  70.                         {21},{dovan;im({No})},,
  71.                             {e:=e+1;im({Yes})})},
  72.                 {夜2},{case(@getchar(@daylong,{16},{2}),
  73.                         {22},{dovan;im({No})},
  74.                         {23},{dovan;im({No})},
  75.                         {00},{dovan;im({No})},,
  76.                             {e:=e+1;im({Yes})})},
  77.                 {夜中},{case(@getchar(@daylong,{16},{2}),
  78.                         {01},{dovan;im({No})},
  79.                         {02},{dovan;im({No})},
  80.                         {03},{dovan;im({No})},,
  81.                             {e:=e+1;im({Yes})})},
  82.                 {朝},{case(@getchar(@daylong,{16},{2}),
  83.                         {04},{dovan;im({No})},
  84.                         {05},{dovan;im({No})},
  85.                         {06},{dovan;im({No})},
  86.                         {07},{dovan;im({No})},
  87.                         {08},{dovan;im({No})},
  88.                         {09},{dovan;im({No})},,
  89.                             {e:=e+1;im({Yes})})},
  90.                 {未定},{im({No})},
  91.                 {終わり},{im({No})},
  92.                 {},{dovan;im({No})},,{e:=e+1;im({Yes})});
  93.             });
  94.             im({Yes})});
  95.     });
  96. };
  97.  
  98. /*    各メニューにジャンプし各未読を見る    */
  99. %Jump{
  100.     [jump]
  101.     LOGSAVE;
  102.     type({J }|JUMP|{\n});
  103.     loop({
  104.     wait    ({60},STOP,
  105.         {訂正},    {WAIT;SNDMSG({okasi_f.snd});
  106.             display({\nジャンプコードが間違っています\n});
  107.             im({No})},
  108.         {リターンキーを押して下さい=},
  109.             {type({\n});im({Yes})},
  110.         {よろしいですか(Y,N)=},
  111.             {type({\n});im({Yes})},
  112.         {よろしいですか=},
  113.             {type({\n});im({Yes})},
  114.         {,J)=},    {jump;im({No})},
  115.         {番号またはコマンド=},
  116.             {jump;im({No})});
  117.     });
  118. };
  119.  
  120. /*    SIG内での処理    */
  121. %SIG{
  122.     MFORUM:={};
  123.     MKAIGI:={};
  124.     B:={No};
  125.     %JUMP @nth(a,3,{/});
  126.     footnote(JUMP|{での処理をしています});
  127.  
  128.     %sig{
  129.     %NUMBER1 @nth(a,4,{/});
  130.     case    (NUMBER1={},
  131.         {No},    {type({3\n});
  132.             footnote(JUMP|{の}|NUMBER1|
  133.                 {番フォーラムの未読を見ています});
  134.             WAIT;FREAD({FORUM});type({M\n});WAIT});
  135.     %NUMBER1 @nth(a,5,{/});
  136.     case    (NUMBER1={},
  137.         {No},    {type({5\n});
  138.             footnote(JUMP|{の}|NUMBER1|
  139.                 {番会議室の未読を見ています});
  140.             wait({60},STOP,
  141.             {現在このサービスは行っていません},
  142.                 {WAIT;
  143.                 SNDMSG({okasi_f.snd});
  144.                 display({\nこのSIGには}|
  145.                 {会議室がありません\n})},
  146.             {,J)=},    {KREAD;type({M\n});WAIT},
  147.             {番号またはコマンド=},
  148.                 {KREAD;type({M\n});WAIT})});
  149.     %NUMBER1 @nth(a,6,{/});
  150.     case    (NUMBER1={},
  151.         {No},    {type({7\n});
  152.             footnote(JUMP|{の}|NUMBER1|
  153.                 {番OSLのリストを見ています});
  154.             wait({60},STOP,
  155.             {現在このサービスは行っていません},
  156.                 {WAIT;
  157.                 SNDMSG({okasi_f.snd});
  158.                 display({\nこのSIGには}|
  159.                 {OSLがありません\n})},
  160.             {,J)=},    {OSLCHK;type({M\n});WAIT},
  161.             {番号またはコマンド=},
  162.                 {OSLCHK;type({M\n});WAIT})});
  163.     %NUMBER1 @nth(a,7,{/});
  164.     case    (NUMBER1={},
  165.         {No},    {type({4\n});
  166.             footnote(JUMP|{の}|NUMBER1|
  167.                 {番ライブラリのリストを見ています});
  168.             wait({60},STOP,
  169.             {現在このサービスは行っていません},
  170.                 {WAIT;
  171.                 SNDMSG({okasi_f.snd});
  172.                 display({\nこのSIGには}|
  173.                 {ライブラリがありません\n})},
  174.             {,J)=},    {LIBCHK},
  175.             {番号またはコマンド=},
  176.                 {LIBCHK})});
  177.     };
  178.  
  179.     Jump(sig);
  180.     case(SAVE,{JUMPCODE},{case(REC,{Yes},{REC:={No};stoprec})});
  181.     LOGDEL;
  182.     MFORUM:=@body(MFORUM,{,});
  183.     MKAIGI:=@body(MKAIGI,{,});
  184.     case    (MFORUM={}&&MKAIGI={},
  185.         {No},{write    (DIR1|{\PVAPRESU.DAT},
  186.                 {SIG/}|JUMP|{/}|MFORUM|{/}|MKAIGI|{/\n})});
  187. };
  188.  
  189. /*    フォーラム・掲示板の未読を表示    */
  190. %FREAD{
  191.     [WHERE]
  192.     C:=1;
  193.     loop({
  194.     %NUMBER2 @nth(NUMBER1,C,{,});
  195.     type({RN}|NUMBER2|{\n});
  196.     wait({60},STOP,
  197.     {新しいメッセージは、ありません。},
  198.         {WAIT;case    (@nth(NUMBER1,C+1,{,})={},
  199.                 {No},    {C:=C+1;im({Yes})},
  200.                 {Yes},    {im({No})})},
  201.     {****},
  202.         {B:={Yes};
  203.         MFORUM:=MFORUM|{,}|NUMBER2;
  204.         WAIT;
  205.         case(WHERE,{BBS},{LogSave2},,{LogSave});
  206.         type({RB-\n});
  207.         WAITrb;
  208.         case(SAVE,{BOARD},{case    (REC,{Yes},{REC:={No};stoprec})});
  209.         case    (@nth(NUMBER1,C+1,{,})={},
  210.             {No},    {type({F\n});WAIT;C:=C+1;im({Yes})},
  211.             {Yes},    {im({No})});});
  212.     });
  213. };
  214.  
  215. /*    会議室の未読を見る    */
  216. %KREAD{
  217.     C:=1;
  218.     loop({
  219.     %NUMBER2 @nth(NUMBER1,C,{,});
  220.     type(NUMBER2|{\n});
  221.     WAIT;
  222.     type({RN\n});
  223.     wait({60},STOP,
  224.     {新しいメッセージは、ありません。},
  225.         {WAIT;case    (@nth(NUMBER1,C+1,{,})={},
  226.                 {No},    {type({S\n});WAIT;C:=C+1;im({Yes})},
  227.                 {Yes},    {im({No})})},
  228.     {****},
  229.         {B:={Yes};
  230.         MKAIGI:=MKAIGI|{,}|NUMBER2;
  231.         WAIT;
  232.         WHERE:={KAIGI};LogSave;
  233.         type({RB-\n});
  234.         WAITrb;
  235.         case(SAVE,{BOARD},{case    (REC,{Yes},{REC:={No};stoprec})});
  236.         case    (@nth(NUMBER1,C+1,{,})={},
  237.             {No},    {type({S\n});WAIT;C:=C+1;im({Yes})},
  238.             {Yes},    {im({No})});});
  239.     });
  240. };
  241.  
  242. /*    OSLを見る    */
  243. %OSLCHK{
  244.     A:=1;
  245.     C:=1;
  246.     case    (SAVE,
  247.         {BOARD},{dispoff({Yes});
  248.             command({del }|LOGPATH|{\}|JUMP|{\OSLLIST.LOG});
  249.             dispoff({No});
  250.             receive(LOGPATH|{\}|JUMP|{\OSLLIST.LOG});
  251.             REC:={Yes}});
  252.     loop({
  253.     %NUMBER2 @nth(NUMBER1,C,{,});
  254.     type(NUMBER2|{\n});
  255.     WAIT;
  256.     type({2\n});
  257.     loop({
  258.     WAIT;
  259.     case    (LIST=A,
  260.         {Yes},{im({No})},
  261.         {No}, {A:=A+1;type({\n});im({Yes})});
  262.     });
  263.     case    (@nth(NUMBER1,C+1,{,})={},
  264.         {No},    {type({S\n});WAIT;C:=C+1;im({Yes})},
  265.         {Yes},    {im({No})});
  266.     });
  267.     case(SAVE,{BOARD},{case(REC,{Yes},{REC:={No};stoprec})});
  268. };
  269.  
  270. /*    ライブラリを見る    */
  271. %LIBCHK{
  272.     A:=1;
  273.     C:=1;
  274.     case    (SAVE,
  275.         {BOARD},{dispoff({Yes});
  276.             command({del }|LOGPATH|{\}|JUMP|{\LIBLIST.LOG});
  277.             dispoff({No});
  278.             receive(LOGPATH|{\}|JUMP|{\LIBLIST.LOG});
  279.             REC:={Yes}});
  280.     loop({
  281.     %NUMBER2 @nth(NUMBER1,C,{,});
  282.     type(NUMBER2|{\n});
  283.     loop({
  284.     WAIT;
  285.     case    (LIST=A,
  286.         {Yes},{im({No})},
  287.         {No}, {A:=A+1;type({\n});im({Yes})});
  288.     });
  289.     case    (@nth(NUMBER1,C+1,{,})={},
  290.         {No},{type({S\n});WAIT;C:=C+1;im({Yes})},
  291.         {Yes},{im({No})});
  292.     });
  293.     case(SAVE,{BOARD},{case(REC,{Yes},{REC:={No};stoprec})});
  294. };
  295.  
  296. /*    BBS内での処理    */
  297. %BBS{
  298.     MFORUM:={};
  299.     B:={No};
  300.     %JUMP @nth(a,3,{/});
  301.     footnote(JUMP|{での処理をしています});
  302.  
  303.     %bbs{
  304.     %NUMBER1 @nth(a,4,{/});
  305.     case    (NUMBER1={},
  306.         {No},    {footnote(JUMP|{の}|NUMBER1|{番の未読を見ています});
  307.             FREAD({BBS})});
  308.     };
  309.  
  310.     Jump(bbs);
  311.     case(SAVE,{JUMPCODE},{case(REC,{Yes},{REC:={No};stoprec})});
  312.     LOGDEL;
  313.     MFORUM:=@body(MFORUM,{,});
  314.     case(MFORUM={},{No},{write(DIR1|{\PVAPRESU.DAT},
  315.                 {BBS/}|JUMP|{/}|MFORUM|{/\n})});
  316. };
  317.  
  318. /*    CUG内での処理    */
  319. %CUG{
  320.     %cug{
  321.     %NUMBER1 @nth(a,6,{/});
  322.     case    (NUMBER1={},
  323.         {No},    {type(@nth(a,5,{/})|{\n});
  324.             footnote(JUMP|{の}|NUMBER1|{番掲示板の}|
  325.                 {未読を見ています});
  326.             WAIT;FREAD({KEIJI});type({M\n});WAIT});
  327.     %NUMBER1 @nth(a,8,{/});
  328.     case    (NUMBER1={},
  329.         {No},    {type(@nth(a,7,{/})|{\n});
  330.             footnote(JUMP|{の}|NUMBER1|{番会議室の}|
  331.                 {未読を見ています});
  332.             WAIT;KREAD;type({M\n});WAIT});
  333.     %NUMBER1 @nth(a,10,{/});
  334.     case    (NUMBER1={},
  335.         {No},    {type(@nth(a,9,{/})|{\n});
  336.             footnote(JUMP|{の}|NUMBER1|{番OSLの}|
  337.                 {リストを見ています});
  338.             WAIT;OSLCHK;type({M\n});WAIT});
  339.     %NUMBER1 @nth(a,12,{/});
  340.     case    (NUMBER1={},
  341.         {No},    {type(@nth(a,11,{/})|{\n});
  342.             footnote(JUMP|{の}|NUMBER1|{番ライブラリの}|
  343.                 {リストを見ています});
  344.             WAIT;LIBCHK});
  345.     };
  346.  
  347.     MFORUM:={};
  348.     MKAIGI:={};
  349.     B:={No};
  350.     %JUMP @nth(a,3,{/});
  351.     footnote(JUMP|{での処理をしています});
  352.     LOGSAVE;
  353.     type({J CUG\n});
  354.     loop({
  355.     wait({60},STOP,    {よろしいですか(Y,N)=},
  356.                 {type({\n});im({Yes})},
  357.             {よろしいですか=},
  358.                 {type({\n});im({Yes})},
  359.             {CUGコードまたはコマンド(M,H,Q,CM,J)=},
  360.                 {type(JUMP|{\n});im({No})},
  361.             {CUGコードまたはコマンド=},
  362.                 {type(JUMP|{\n});im({No})});
  363.     });
  364.     wait    ({60},STOP,
  365.         {未契約},{WAIT;
  366.             SNDMSG({okasi_f.snd});
  367.             display({\未契約のCUGです\n})},
  368.         {訂正},    {WAIT;
  369.             SNDMSG({okasi_f.snd});
  370.             display({\nCUGコードが間違っています\n})},
  371.         {PASSWORD:},
  372.             {type(@nth(a,4,{/})|{\n});WAITa;cug});
  373.     case(SAVE,{JUMPCODE},{case(REC,{Yes},{REC:={No};stoprec})});
  374.     LOGDEL;
  375.     MFORUM:=@body(MFORUM,{,});
  376.     MKAIGI:=@body(MKAIGI,{,});
  377.     case    (MFORUM={}&&MKAIGI={},{No},
  378.         {write    (DIR1|{\PVAPRESU.DAT},
  379.             {CUG/}|JUMP|{/}|MFORUM|{/}|MKAIGI|{/\n})});
  380. };
  381.  
  382. /*    OLT広場の未読を見る    */
  383. %OLT{
  384.     B:={No};
  385.     footnote({OLT広場の未読を見ています});
  386.     %JUMP {OLT};
  387.     type({J }|JUMP|{\n});
  388.     wait({60},STOP,    {よろしいですか(Y,N)=},    {type({\n});WAIT},
  389.             {よろしいですか=},    {type({\n});WAIT},
  390.             {番号またはコマンド=},,
  391.             {,J)=},);
  392.     type({3\n});
  393.     WAIT;
  394.     type({1\n});
  395.     %WAIT1{wait({120},STOP,
  396.     {訂正},        WAIT,
  397.     {タイトル},    {B:={Yes};
  398.             A:=@tail(@laststr,{#},{/});
  399.             WAIT;
  400.             case    (SAVE={JUMPCODE}||SAVE={BOARD},
  401.                 {Yes},
  402.                 {case    (preser,
  403.                     { 1},    {mkdir2(LOGPATH|{\}|JUMP);
  404.                         LOGFILE:=@crefile(LOGPATH|{\}|
  405.                             JUMP,{LOG});
  406.                         receive(LOGPATH|{\}|JUMP|{\}|
  407.                             LOGFILE);
  408.                         REC:={Yes}})});
  409.             loop({
  410.             type({RB}|A|{,}|A+1|{,}|A+2|{,}|A+3|{,}|A+4|{\n});
  411.             wait({300},STOP,
  412.             {訂正して},
  413.                 {WAIT;im({No})},
  414.             {ありません。\n\n}|{番号または},
  415.                 {WAIT;im({No})},
  416.             {,J)=},
  417.                 {A:=A+5;im({Yes})},
  418.             {<FM>=},
  419.                 {A:=A+5;im({Yes})});
  420.             });});
  421.     };
  422.     WAIT1;
  423.     case    (SAVE={JUMPCODE}||SAVE={BOARD},
  424.         {Yes},{case(REC,{Yes},{REC:={No};stoprec})});
  425.     LOGDEL;
  426.     case(B,{Yes},{write(DIR1|{\PVAPRESU.DAT},{OLT広場/\n})});
  427. };
  428.  
  429. /*    実行    */
  430. var MFORUM    [20];
  431. var MKAIGI    [20];
  432. DOvan;
  433.